package MyLinkedList;

public interface LinkedList {
    /**
     * 头插法
     */
    void addFirst(int data);

    /**
     * 尾插法
     */
    void addLast(int data);

    /**
     * 任意位置插入，第一个数据节点为 0 号下标
     */
    boolean addIndex(int index, int data);

    /**
     * 查找是否包含关键字 key 是否在单链表中
     */
    boolean contain(int key);

    /**
     * 删除第一次出现关键字为 key 的节点
     */
    void remove(int key);

    /**
     * 删除所以值为 key 的节点
     */
    void removeAllKey(int key);

    /**
     * 得到单链表的长度
     */
    int size();

    /**
     * 打印
     */
    void display();

    /**
     * 清空节点
     */
    void clear();

}
